[c++]指针问题··

来源:百度知道 编辑:UC知道 时间:2024/07/04 09:08:45
设有程序:
#include <iostream>
using namespace std;
int main()
{
int *p = new int;
cout<<p<<endl;
//故意不释放内存!
system("pause");
return 0;
}

每次运行结果都一样,包括同时打开3个,为什么呢?难道程序间可以公用一块内存并同时使用??

另外,设有程序:
#include <iostream>
using namespace std;
int main()
{
int*p=new int(0);
cin>>*p;
system("pause");
cout<<*p;
system("pause");
return 0;
}
运行这个程序,输入123,并让他停在暂停中,然后再打开这个程序,输入321,并停在暂停处,然后回到第一次打开的程序,按下回车,然后显示123,回到第二次打开的,按下回车,输出321,为什么呢?????地址不是一样的吗???

这个你学了操作系统就明白了,每个进程是独享一块内存的

老大,你每一次运行这个程序 ,系统就会建一个进程 ,你关掉后,这个进程 就被释放了,这个进程 中有你这个程序运行进所要的全部的资源,你打开个两个这个同样程序,系统同样会建 两个一样名字的进程(你可用资源管理 器中看到),这两个进程中的资源是不会共用的,所以不能达到你想要的结果